inspector: Hide the inspector tab when empty
authorMatthias Clasen <mclasen@redhat.com>
Sun, 9 Nov 2014 02:29:51 +0000 (21:29 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 9 Nov 2014 02:29:51 +0000 (21:29 -0500)
gtk/inspector/gestures.c

index 039e21a36b9ee682cae2567a459175f0054fc5c6..b45dd246a6eaea473655c33b4d6a0a3cb745fea7 100644 (file)
@@ -177,40 +177,40 @@ void
 gtk_inspector_gestures_set_object (GtkInspectorGestures *sl,
                                    GObject              *object)
 {
+  GHashTable *hash;
+  GHashTableIter iter;
+  GList *list, *l;
+  gint phase;
+
   clear_all (sl);
+  gtk_widget_hide (GTK_WIDGET (sl));
 
-  if (GTK_IS_WIDGET (object))
+  if (!GTK_IS_WIDGET (object))
+    return;
+
+  hash = g_hash_table_new (g_direct_hash, g_direct_equal);
+  for (phase = GTK_PHASE_NONE; phase <= GTK_PHASE_TARGET; phase++)
     {
-      GHashTable *hash;
-      GHashTableIter iter;
-      GList *list, *l;
-      gint phase;
-
-      hash = g_hash_table_new (g_direct_hash, g_direct_equal);
-      for (phase = GTK_PHASE_NONE; phase <= GTK_PHASE_TARGET; phase++)
-        {
-          list = _gtk_widget_list_controllers (GTK_WIDGET (object), phase);
-          for (l = list; l; l = l->next)
-            g_hash_table_insert (hash, l->data, GINT_TO_POINTER (phase));
-          g_list_free (list);
-        }
+      list = _gtk_widget_list_controllers (GTK_WIDGET (object), phase);
+      for (l = list; l; l = l->next)
+        g_hash_table_insert (hash, l->data, GINT_TO_POINTER (phase));
+      g_list_free (list);
+    }
       
-      while (g_hash_table_size (hash) > 0)
-        {
-          gpointer key, value;
-          GtkGesture *gesture;
-          g_hash_table_iter_init (&iter, hash);
-          g_hash_table_iter_next (&iter, &key, &value);
-          gesture = key;
-          add_gesture_group (sl, object, gesture, hash);
-        }
-
-      g_hash_table_unref (hash);
-
-      gtk_widget_show (GTK_WIDGET (sl));
+  if (g_hash_table_size (hash))
+    gtk_widget_show (GTK_WIDGET (sl));
+
+  while (g_hash_table_size (hash) > 0)
+    {
+      gpointer key, value;
+      GtkGesture *gesture;
+      g_hash_table_iter_init (&iter, hash);
+      g_hash_table_iter_next (&iter, &key, &value);
+      gesture = key;
+      add_gesture_group (sl, object, gesture, hash);
     }
-  else
-    gtk_widget_hide (GTK_WIDGET (sl));
+
+  g_hash_table_unref (hash);
 }
 
 static void